As electronic circuit design has become increasing complicated, expensive and time consuming, computer-based circuit simulation has gained importance as a means of reliably testing designs of large circuits. Typically, a large circuit represents an aggregation of thousands of components, and it is difficult during the design stage of the circuit to predict how these components will influence one another during circuit operation. For example, reflected or time-delayed signals within a circuit may contribute to signal unintelligibility or instability, or may undesirably influence nearby electronic paths. This design problem is further enhanced when effects of other, external components are considered along with a sub-circuit being modeled. For example, when effects of adjacent high frequency transmission paths or surface mounts of an integrated circuit are considered together with the design of the integrated circuit, the resulting system model may be quite different than was the case for the integrated circuit alone. Moreover, as components are called upon to operate at faster and faster speeds, driven in large part by the speed of operation of newer digital systems, analysis of transient and high frequency conditions becomes increasingly critical to circuit reliability.
It is frequently desired to test large circuit designs before circuit prototypes are actually built, since prototype fabrication may be costly and time consuming; computer simulation of mathematical models only of the circuit design, before prototype fabrication, can lead to quick design changes while saving many thousands of dollars associated with such fabrication.
To this end, circuit simulation is frequently performed by software which operates on a mathematical model of a large circuit. A mathematical model of a circuit is frequently used, even if a circuit prototype is actually available, since high speed computers can quickly and efficiently predict circuit response at many different measurement points within the circuit, for example, at the ports of an integrated circuit, for many different input signal conditions. For large circuits designs, manual simulation can sometimes take far more time that computer-based simulation. Of course, the accuracy and speed of the computer-based model are very dependent upon the simulation tools used.
Many common computer simulators are variations of an early simulator tool, "SPICE," (which stands for "simulation program with integrated circuit emphasis"). These programs typically operate by accepting circuit frequency response parameters, either directly from a computer aided design ("CAD") package, a simulator (using discrete frequencies to directly measure frequency response of a circuit prototype), or another means. The simulator then is then typically used to, based upon these parameters, simulate special signal conditions for the circuit which are usually not discrete frequencies, i.e., to predict transient responses and the like. The computer-based simulators typically use numbers which represent test input signals, e.g., initial voltages, currents and frequencies. The simulators then usually conduct a time-based analysis of response to the input signal conditions at the different measurement points of the circuit.
Some simulators employing "direct convolution" operate directly on the frequency response parameters by multiplying them with input test signals which have been converted to the frequency domain (including both instantaneous inputs as well as historical inputs, to thereby account for time-delays within the circuit). By properly selecting test frequencies, one obtains information to predict an entire range of operation of a digital device (commonly extending from near zero hertz to several gigahertz). Ideally, a set of frequency responses provides a complete set of information from which to model circuit performance for any given input frequency or condition. This information is then processed to determine the frequency response parameters which, generally, are in the form of an impedance matrix or an admittance matrix; it is also sometimes desired to use a "scattering" matrix, which is defined by the relation ##EQU1## where "Q" is an identity matrix, "Y" is an admittance matrix for the circuit, and Z.sub.0 is a reference impedance. Scattering parameters (or "S-parameters") are sometimes preferred, because the S-parameters of passive devices will always have an absolute value less than 1, dramatically increasing the stability of typical analysis based upon them. The computer-based simulator may then operate by using an Inverse Fast Fourier Transform ("IFFT") to convert the parameters to the time domain, and by applying time-intensive direct convolution of the time domain parameters to the test input signals of interest, to yield predicted circuit behavior. Unfortunately, use of the IFFT requires that the frequency response parameters represent evenly spaced frequencies, e.g., 0, 5, 10, 15 kilohertz, etcetera.
While generally acceptable for many circuits, direct convolution processes can sometimes take many hours to run for complicated circuits, because of the number of iterations that need to be performed. For example, since direct convolution methods typically convert time history of the test input signals, at each time increment, to the frequency domain for multiplication with frequency response parameters, which requires a great deal of numerical processing for each time step. Furthermore, the requirement that the parameters represent only evenly spaced test frequencies implies that frequency response of the circuit must be measured for an inordinate number of test frequencies, since it is typically desired to ascertain frequency response for frequency change of only a few hertz, yet also cover the circuit's entire operating range. Consequently, use of direct convolution and an IFFT can be quite time consuming where testing is desired over a very large frequency range. There is a definite need for a circuit simulator which can accommodate testing over a very wide frequency range, preferably using parameters not measured at evenly spaced frequencies, and that can perform processing very quickly, even for large circuits.
Other common simulator designs use alternatives to direct convolution known as "macromodeling" or "recursive convolution." "Macromodeling" is performed using the impedance, admittance or S-parameters to build and fit a system transfer function that describes response at each measurement point in dependence upon inputs signals to the circuit; in other words, a formula is computed from the frequency response parameters, and the parameters are not directly used themselves in the actual simulation. The transfer function typically is estimated by computing a rational polynomial, based on the frequency response parameters, and applying an iterative best fit analysis. The resulting polynomials are then implemented as equivalent circuits, and the circuit under consideration is processed by time-stepped analysis using a simulator, for example, using a "SPICE" simulator. Alternatively, simulators employing "recursive convolution" typically take an inverse Laplace transform of the fitted polynomials, to obtain time-domain relations, and use processing shortcuts to convolve the time-domain relations with inputs to the circuit.
Macromodeling and recursive convolution techniques have their advantages, as does direct convolution. For example, macromodeling and recursive convolution typically do not employ an IFFT process and, thus, those techniques may be used with parameters which are not based on regularly spaced frequencies. Furthermore, because macromodeling and direct convolution techniques do not directly use multiplication between time history and individual system parameters, the resulting simulation can sometimes be performed much more quickly than direct convolution. Unfortunately, macromodeling and recursive convolution typically are based on fit Pade Approximation or Least-Squares Fitting algorithms, which may result in the presence of unstable poles when the order of the rational polynomial of the system transfer function exceeds six or seven. Direct convolution does not have this limitation, but as mentioned, direct convolution methods can be quite consuming, and requires an use of evenly spaced test frequencies. These processes therefore typically present problems which may influence reliability or speed of simulation.
There is a definite need for a system that can quickly simulate complicated circuit designs, particularly for circuits which are modeled by a transfer function of high order. Furthermore, there is a need for a system that can accept parameters which are not based on evenly spaced test frequencies, but rather, which can be related to each other by a logarithmic or other non-linear scale; such a system could process information representing a much greater frequency range using fewer computational resources. Ideally, such a system should be in form where it can be integrated with relatively minor deviation from typical simulator programs, such as "SPICE," such that the system can directly operate on standard simulator inputs. The present invention solves these needs and provides further, related advantages.